package au.com.twosquared.animalfarm.entities.animals.model;

import java.util.*;
import java.io.*;
import au.com.twosquared.animalfarm.entities.Entity;
import au.com.twosquared.animalfarm.sprites.Animation;

/**
 * Contains all the variables within an Animal and enables saving the data into
 * a .txt file to be read back and parsed into an Animal given a .txt file with
 * the correct details
 * @author Sam Luc <san.luc@twosquared.com.au>
 * @author Jan Martin <jan.martin@twosquared.com.au>
 * @version 1.0 Last Modified 2011-11-15
 * @since 2011-11-15
 */

public abstract class Animal extends Entity {

	/**
	 * Name of the Animal
	 */
	String name;
	/**
	 * Species of the Animal
	 */
	Species species;
	/**
	 * Evolution stage of Animal
	 */
	Type type;
	/**
	 * Rank of the Animal
	 */
	Rank rank;

	/**
	 * Current Age of Animal
	 */
	int age;
	/**
	 * Current Hunger level of Animal
	 */
	int hunger;
	/**
	 * Current Sleep time of Animal
	 */
	int sleep;

	/**
	 * Health Pool of Animal
	 */
	int health;
	/**
	 * Mana Pool of Animal
	 */
	int mana;
	/**
	 * Attack Points of Animal
	 */
	int attack;
	/**
	 * Defense Points of Animal
	 */
	int defence;
	/**
	 * Direction in Animation of Animal
	 */
	protected int direction;
	
	public Animal(ArrayList<Animation> animations) {
		super(animations);
	}

}